Java AI 核心引擎:30 天從零打造可擴展的智慧 Agent 函式庫
本篇是 IT 鐵人賽系列文章的第一天,將建立一個能與本地語言模型溝通的 LangChain4j 專案基礎。
執行指引:本專案支援兩種執行模式:
- 開發模式:
./mvnw spring-boot:run -Dspring-boot.run.profiles=dev
(專注當天開發內容)- 完整模式:
./mvnw spring-boot:run
(體驗累積的完整功能)
開始 AI Agent 開發的第一步,就是要有一個本地的語言模型運行環境。Ollama 就是為了解決這個需求而生的工具,它讓我們可以在自己的電腦上輕鬆運行各種大語言模型。
最簡單的安裝方式:使用 Homebrew
brew install ollama
如果你沒有 Homebrew,或是偏好圖形化安裝,也可以直接從官網下載:
https://ollama.com/download
推薦使用 Homebrew,因為後續更新管理都會比較方便。
根據 Ollama 官方模型庫,Ollama 支援多種語言模型。在眾多選擇中,推薦使用 Llama 3.1:
ollama run llama3.1:8b-instruct-q4_K_M
根據 Ollama 官方文件,執行 ollama run
時,Ollama 會自動:
載入完成後,會出現 >>>
提示符,此時可以直接與模型對話:
>>> 你好,請用繁體中文介紹一下你自己。
在繼續開發之前,讓我們花點時間確認 Ollama 服務都正常運作。這些檢查步驟看似簡單,但能避免後續開發時遇到莫名的連線問題。
檢查 API 服務是否啟動
Ollama 會在背景啟動一個 API 服務,預設監聽 11434 端口:
curl http://localhost:11434/api/version
查看已下載的模型
ollama list
檢查正在運行的模型
ollama ps
如果 ollama ps
沒有顯示任何內容,別緊張!這表示目前沒有模型載入記憶體中,這是正常現象。Ollama 採用的是按需載入的策略,只有在實際需要時才會將模型載入記憶體。
接下來建立一個 Spring Boot 專案作為 AI Agent 框架的基礎。雖然市面上有很多建立 Spring Boot 專案的方式,但使用 IntelliJ IDEA 的內建嚮導是最直觀的方式。
建立專案的步驟如下:
開啟 IntelliJ IDEA,選擇 New Project
選擇專案類型:
添加基礎依賴:
Spring Web
(雖然今天用不到,但後面會需要)設定專案資訊:
按下 Create 完成專案建立
整個過程大概需要一兩分鐘,IDEA 會幫我們下載相關依賴並建立好專案結構。
根據 Maven Central Repository,LangChain4j 0.36.2 版本提供以下官方 Spring Boot Starter:
在專案根目錄的 pom.xml
中,於 <dependencies>
區段新增:
<!-- LangChain4j Spring Boot Starter -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
<version>0.36.2</version>
</dependency>
<!-- LangChain4j Ollama Spring Boot Starter -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama-spring-boot-starter</artifactId>
<version>0.36.2</version>
</dependency>
根據 LangChain4j Spring Boot Integration 文件,Ollama 整合支援以下官方配置參數:
langchain4j.ollama.chat-model.base-url
: Ollama 服務的基礎 URLlangchain4j.ollama.chat-model.model-name
:要使用的模型名稱對於其他參數如 temperature 和 timeout, 見 Ollama Modelfile 文件。
在 src/main/resources/application.properties
中新增 Ollama 配置:
spring.application.name=ai-agent-demo
# === LangChain4j Ollama 配置 ===
# 基礎連線設定
langchain4j.ollama.chat-model.base-url=http://localhost:11434
langchain4j.ollama.chat-model.model-name=llama3.1:8b-instruct-q4_K_M
# 模型參數設定(詳細說明請參閱 Day 5)
langchain4j.ollama.chat-model.temperature=0.7
langchain4j.ollama.chat-model.timeout=PT5M
系統訊息(System Message)的作用是指示大語言模型如何表現
在我們的實作中,透過 @SystemMessage
註解可以輕鬆設定 AI 的角色和行為準則。
./mvnw clean compile
預期結果:BUILD SUCCESS
建議使用開發模式:
./mvnw spring-boot:run -Dspring-boot.run.profiles=dev
或使用完整模式:
./mvnw spring-boot:run
看到 Spring Boot 啟動 logo 和 Started AiAgentDemoApplication
訊息表示成功。
Ollama 環境檢查:
# 確認 API 服務運行
curl http://localhost:11434/api/version
# 確認模型存在
ollama list
專案環境檢查:
# 確認 Java 版本
java --version
# 確認 Maven 可用
./mvnw --version
我們已經成功完成了以下設定:
localhost:11434
正常運作快速驗證指令:
ollama list # 確認模型存在
./mvnw clean compile # 確認專案編譯成功
./mvnw spring-boot:run -Dspring-boot.run.profiles=dev # 確認服務啟動正常(開發模式)
明天我們將:
ChatLanguageModel
BeanCommandLineRunner
測試模型回應恭喜你完成了 AI Agent 開發的第一步!
感謝大家的閱讀,我們明天見!
Day 1 完成 | 明天繼續我們的 AI 冒險之旅!